# 练习 1：简单的加减法数学游戏
# 需求
# 随机生成两个100以内的数字          random.randint(1, 100)
# 随机选择加法或是减法               random.choice(["+", "-"])
# 总是使用大的数字减去小的数字        用列表保存数据，排序
# 如果用户答错三次, 程序给出正确答案   while   else
import random
def test():  # test: 考试, 测试
    nums = []  # 存放两个随机数的列表
    for i in range(2):
        nums.append(random.randint(1, 100))
    nums.sort(reverse=True)  # 降序排序，为了后续用大数减小数的操作
    operation = random.choice(["+", "-"])  # operation: 操作
    if operation == "+":
        result = nums[0] + nums[1]  # result: 相当于正确答案
    else:
        result = nums[0] - nums[1]  # 大数减小数
    tips = "%s %s %s = ??? 请解答: "%(nums[0], operation, nums[1])
    counter = 0  # 用于循环的次数
    while counter < 3:  # 算错的次数小于3，游戏才能继续
        answer = int(input(tips))  # 用户算数的过程, answer: 答案，用户的答案
        if answer == result:
            print("算对了")
            break  # 算对，退出循环，进行下一道题
        else:
            print("算错了")
            counter += 1  # 将算错的次数+1
    else:  # 3次算错会走else的逻辑, 给出正确答案
        print("最后的答案是:", result)

    # pass  # 占一个坑，防止报错
def show_menu():  # 交互
    while True:
        test()  # 调用test，算一次题
        choice = input("还要继续吗(y/n): ")  # 还要继续吗
        if choice == "n":  # no: 不玩了，退出循环
            print("Byebye~")
            break
if __name__ == '__main__':
    show_menu()



# 程序 = 数据结构(str, list, tuple, dict...) + 算法(if while....)
# list01 = [10, 15]
# list01.sort(reverse=True) 倒序排序 -> [15, 10]
# list01[0] 一定是大数          15     -    10
# 总是使用大的数字减去小的数字  list01[0] - list01[1]




